package cn.tedu.spring.auto;

import lombok.Setter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

/**
 * @author 董代恒
 * @version 1.0
 */
//Spring Framework看到这个注解先创建这个类的bean对象，然后对该类属性进行依赖注入
//Component:有一个value属性可以指定bean对象的名称，一般不用我们自己去指定的，直接用默认Ioc容器给我们创建的bean对象名称就行了
@Component("userCache")
public class UserCache {
    /*
        @Autowired注解的装配规则：
            1.只能根据bean对象来装配，不能根据bean对象名称进行装配
            2.如果有两个相同类型的bean对象，就报错。
        @Qualifier注解：
            1.根据Ioc容器中，根据SpringBean对象的名称进行装配
            2.经常结合@Autowired一起使用
     */
    //不写@Autowired这个注解也没有事情，因为在Ioc容器中叫cacheImpl2的bean只有一个
    @Autowired
    @Qualifier("cacheImpl2")
    private Cache cache;
}
